Storage system and data input/output control method

ABSTRACT

A highly-reliable storage system and data input/output control method, which can ensure priority data input/output performance, is provided. 
     A performance limit, which is the number of data input/output processes per unit of time that is the limit in the storage apparatus, is detected; and a processing percentage for each of one or more priority targets for which data input/output processing should be prioritized, and a group of one or more non-priority targets that consists of one or more other targets, from among one or more targets, which correspond to input/output processing request types, is determined based on the performance limit detected by the performance limit detection unit, and a targeted performance that is a targeted number of data input/output processes per unit of time set in advance for each of the one or more priority targets; and the storage apparatus executes data input/output processing for the one or more priority targets and the group of one or more non-priority targets at respective frequencies corresponding to processing percentages determined by the processing percentage determination unit.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application relates to and claims priority from Japanese PatentApplication No. 2006-238150, filed on Sep. 1, 2006, the entiredisclosure of which is incorporated herein by reference.

BACKGROUND

1. Field of the Invention

The invention relates to a storage system and a data input/outputcontrol method, for example, one that is suited for use in a storagesystem in which a host apparatus executes the processing for variouskinds of work using application programs.

2. Description of Related Art

Conventionally, in a storage apparatus, the data input/output processingfor data input/output requests from a host apparatus is performed by aprocessor associated with a port connected to the host apparatus.Accordingly, the data input/output processing for high-priority work andthat for low-priority work may be performed by the same processor. Insuch circumstances, when the low-priority work has a heavy load, thehigh-priority work, affected by the low-priority work's heavy load,cannot reserve its necessary bandwidth.

A conventional method for solving the above problem is outlined inJP-A-2002-108567, which proposes a method for reserving the bandwidthfor data input/output from/to priority host apparatuses by a usersetting an upper limit or threshold value for data input/outputprocessing for each of the ports, WWNs (World Wide Names), or devices ina single storage apparatus, to limit data input/output from/tonon-priority host apparatuses.

SUMMARY

However, the method disclosed in JP-A-2002-108567 has a problem in thatit only limits non-priority data input/output, and priority datainput/output performance is not ensured.

The present invention has been made in light of the above points, andhas the objective of providing a highly-reliable storage system and datainput/output control method, which can ensure priority data input/outputperformance.

In order to achieve the objective, the present invention provides astorage system including a storage apparatus that performs datainput/output processing according to a data input/output requestreceived from a host apparatus, the storage system including: aperformance limit detection unit that detects a performance limit, whichis the number of data input/output processes per unit of time that isthe limit in the storage apparatus; and a processing percentagedetermination unit that determines a processing percentage for datainput/output processes for each of one or more priority targets forwhich data input/output processing should be prioritized, and a group ofone or more non-priority targets that consists of one or more othertargets, from among one or more targets, which correspond toinput/output processing request types, the processing percentage beingdetermined based on the performance limit detected by the performancelimit detection unit, and a targeted performance that is a targetednumber of data input/output processes per unit of time set in advancefor each of the one or more priority targets, wherein the storageapparatus executes data input/output processing for the one or morepriority targets and the group of one or more non-priority targets atrespective frequencies corresponding to the processing percentagesdetermined by the processing percentage determination unit.

Accordingly, this storage system makes it possible to execute the datainput/output processing for the priority targets and the non-prioritytarget group at the frequencies corresponding to the respectiveprocessing percentages determined by the processing percentagedetermination unit.

The present invention also provides a data input/output control methodfor controlling data input/output to/from a storage apparatus thatperforms data input/output processing according to a data input/outputrequest received from a host apparatus, the method including: a firststep of detecting a performance limit, which is the number of datainput/output processes per unit of time that is the limit in the storageapparatus; and a second step of determining a processing percentage foreach of one or more priority targets for which data input/outputprocessing should be prioritized, and a group of one or morenon-priority targets that consists of one or more other targets, fromamong one or more targets, which correspond to input/output processingrequest types, the processing percentage being determined based on theperformance limit detected by the performance limit detection unit, anda targeted performance that is a targeted number of data input/outputprocesses per unit of time set in advance for each of the one or morepriority targets; and a third step of the storage apparatus executingdata input/output processing for the one or more priority targets andthe group of one or more non-priority targets at respective frequenciescorresponding to the processing percentages determined by the processingpercentage determination unit.

Accordingly, this storage system makes it possible to execute the datainput/output processing for the priority targets and the non-prioritytarget group at the frequencies corresponding to the respectiveprocessing percentages determined by the processing percentagedetermination unit.

The present invention makes it possible to provide a highly-reliablestorage system and data input/output control method, which can ensurethe priority data input/output performance.

Other aspects and advantages of the invention will be apparent from thefollowing description and the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a storage system 1 according to anembodiment of the present invention.

FIG. 2 is a diagram showing the structure of a targeted performancesetting table 50 according to the embodiment of the present invention.

FIG. 3 is a diagram showing the structure of an actual measurementperformance value table 52 according to the embodiment of the presentinvention.

FIG. 4 is a diagram showing the structure of an actual measurementperformance value table 53 according to the embodiment of the presentinvention.

FIG. 5 is a flowchart showing the processing flow according to theembodiment of the present invention.

FIG. 6 is a diagram showing the structure of an actual measurementperformance value table according to the embodiment of the presentinvention.

FIG. 7 is a flowchart showing the flow of processing performed by achannel processor 21.

FIG. 8 is a diagram showing the structure of an actual measurementperformance value table according to the embodiment of the presentinvention.

FIG. 9 is a flowchart showing the flow of the processing for re-settinga processing percentage.

FIG. 10 is a diagram showing the structure of a table for the scenariowhere the processing percentages for work change every period of time.

FIG. 11 is a block diagram showing a storage system 1 including a singlecontrol unit 20.

FIG. 12 is a block diagram showing a storage system 1 including aplurality of host apparatuses 2.

FIG. 13 is a diagram showing a data input/output processing order tableaccording to the embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

An embodiment of the present invention will be described below withreference to the drawings.

(1) Overall Configuration of the Storage System

In FIG. 1, 1 denotes the entire storage system 1 according to anembodiment of the present invention. This storage system 1 is configuredby a host apparatus 2 being connected to a storage apparatus 4 via aswitch 3 and a management server 6 being connected to the storageapparatus 4 via an IP (Internet Protocol) network 5.

The host apparatus 2, which is a higher-level apparatus, is a computerincluding information processing resources, such as a CPU (CentralProcessing Unit) 10, memory 11, and a path control unit 13, and is, forexample, a personal computer, a work station, or a mainframe. The hostapparatus 2 includes information input devices (not shown), such as akeyboard, a switch, a pointing device, or a microphone, and informationoutput devices (not shown), such as a monitor display, or a speaker.

The CPU 10 is a processor that controls the overall operation of thehost apparatus 2. The memory 11 is used to hold application programsused by users for work, and is also used as work memory for the CPU 10.The CPU 10 executes application programs held in the memory 11, and as aresult, various kinds of processing relating to the relevant work areexecuted by the entire host apparatus 2. When a plurality of paths isused, the path control unit 13 controls processing commands issuing themevenly between all the paths.

The switch 3 is a Fibre Channel network, and consists of a plurality ofFibre Channel switches. The communication between the host apparatus 2and the storage apparatus 4 via this switch 3 is conducted according toFibre Channel Protocol.

The storage apparatus 4, as shown in FIG. 1, includes a disk device unit30 that provides a storage area for storing data, and control units(DKC) 20 that control data input/output to/from the disk device unit 30.

The disk device unit 30 includes a plurality of disk devices (not shown)and a plurality of ports 31. The disk devices are, for example,expensive disks, such as SCSI (Small Computer System Interface) disks,or inexpensive disks such as SATA (Serial AT Attachment) disks oroptical disks.

These disk devices are managed by the control units 20 according to RAIDmethodology. One or more logical devices (LDEV) 32 are defined over thephysical storage areas provided by one or more disk devices. Data fromthe host apparatus 2 is stored in the logical devices in blocks of apredetermined size (hereinafter referred to as “logical blocks”).

Each logical device 32 is assigned a unique identification (ID) number.In this embodiment, data is output/input designating an address, whichis the combination of an ID number and a unique number assigned to eachblock (LBA: Logical Block Address).

Each control unit 20 includes a plurality of channel processors (CHP)21, a plurality of disk-side ports 22, and a service processor (SVP) 24.

Each channel processor 21 is constructed as a microcomputer systemincluding, for example, a microprocessor, memory, and a communicationinterface, and has host-side ports 22A for connecting with the switch 3.The channel processors 21 interpret various kinds of commands sent fromthe host apparatus 2 and execute the relevant processing. Each of thehost-side ports 22A of each channel processor 21 is assigned a networkaddress for identifying the host-side port (e.g., an IP address or WWN),making it possible for each channel processor 21 to individually behaveas a NAS (Network Attached Storage) device.

The disk-side ports 22B are, for example, ports complying with the FibreChannel standards, and are connected to the corresponding ports 31 inthe disk device unit 30 via cables. The data transmission between thecontrol units 20 and the disk device unit 30 is conducted via thesedisk-side ports 22B.

The service processor 24 is a terminal device for maintaining/managingthe storage apparatus 4. The storage system 1 administrator can, forexample, change the settings for the RAID configuration or the ECC(Error Correction Code) group configuration, such as the settingsinvolved in the addition of disk devices in the disk device units 30,via this service processor 24.

The service processor 24 is constructed as a microcomputer systemincluding information processing resources such as memory 25 and a CPU26. The memory 25 is used to store and hold various kinds of controlprograms and various kinds of tables, and is also used as work memoryfor the CPU 26. The later-described targeted performance setting table50 is also stored and held in this memory 25. The CPU 26 executescontrol programs stored in the memory 25, and as a result, various kindsof processing are executed by the entire service processor 24.

The management server 6 is a server for monitoring and managing thestorage apparatus 4, and includes an operation information monitoringunit 7 and a load control unit 8. The operation information monitoringunit 7 and load control unit 8 are connected to the host apparatus 2 andthe storage apparatus 4 via an IP network 5.

The operation information monitoring unit 7 has a function that collectsand manages the operation information of the storage apparatus 4, andincludes information processing resources such as a CPU 40 and memory41. The memory 41 stores various kinds of control programs, thelater-described actual measurement performance value table 52 andwork-specific actual measurement performance value table 53. The CPU 40executes the control programs stored in this memory 41, and as a result,various kinds of processing are executed.

The load control unit 8 has a function that controls the load of thedata input/output processing performed by each channel processor 21, andincludes information processing resources such as a CPU 42 and memory43. The memory 43 stores various kinds of control programs and thelater-described targeted performance setting table 50. The CPU 42executes control programs stored in the memory 43, and as a result,various kinds of processing are executed.

(2) Data Input/Output Control Function According to this Embodiment

(2-1) Table Structures

Next, the data input/output control function employed in this storagesystem 1 will be described.

The storage system according to claim 1 has the characteristic ofemploying a data input/output control function that controls the datainput/output processing for priority work, from among work for which thehost apparatus 2 performs various kinds of processing based on therelevant application programs, to be performed at frequenciescorresponding to the performances set by a user.

As means for performing various kinds of processing relating to theaforementioned data input/output control function, the service processor24's memory 25 in each control unit 20, and the load control unit 8'smemory 43 store the targeted performance setting table 50, and theoperation information control unit 7's memory 40 stores the actualmeasurement performance value table 52, and the work-specific actualmeasurement performance value table 53.

The targeted performance setting table 50 is a table used tospecifically manage the targeted performances set by a user for work forwhich the data input/output processing should be prioritized(hereinafter referred to as “prioritized work”) and the other(remaining) work (hereinafter referred to as the “non-prioritized workgroup”) from among the work performed by the host apparatus 2. Here, the“targeted performance” refers to the number of data input/outputprocesses per second (IOPS) performed for prioritized work or for thenon-prioritized work group. The targeted performance setting table 50,as shown in FIG. 2, has target fields 50A, and targeted performancefields 50B, and processing percentage fields 50C.

Each target field 50A stores an ID assigned to the correspondingprioritized work or non-prioritized work group. Each target performancefield 50B stores a targeted performance, which is expected by the userfor the corresponding prioritized work. Each processing percentage field50C stores the percentage for the targeted performance of thecorresponding prioritized work or the non-prioritized work group of thenumber of data input/output processes per second performed by the entirestorage system 1 (hereinafter referred to as the “performance limit”).The lowermost row 50D of the targeted performance setting table 50stores a previously-measured performance limit.

Accordingly, the FIG. 2 example shows that “WORK 1” to “WORK 3” areprioritized work, and that for “WORK 1,” for example, the targetedperformance set by the user is “10000,” the processing percentage is“50”%, and the performance limit is “20000.”

The processing percentage for each piece of prioritized work will bedescribed later, and is calculated based on the targeted performance forthe prioritized work set by the user and the previously-measuredperformance limit, and the targeted performance and performancepercentage for the non-prioritized work group is calculated based on thetargeted performances for prioritized work and the performance limit.Thus, no targeted performance is stored in the targeted performancefield 50B for the non-priority-designated group in the targetedperformance setting table 50 (The “OTHERS” row in the targetedperformance field 50B in FIG. 2).

The actual measurement performance value table 52 is a table formanaging actual measurement values of the number of data input/outputprocesses per second for each piece of prioritized work and thenon-prioritized work group (hereinafter referred to as “actualmeasurement performance values”), and as shown in FIG. 3, has targetfields 52A, targeted performance fields 52B, processing percentagefields 52C, and actual measurement performance value fields 52D.

The target fields 52A, the targeted performance fields 52B, and theprocessing percentage fields 52C store the same information as stored inthe target fields 50A, the targeted performance fields 50B, and theprocessing percentage fields 50C of the targeted performance settingtable 50 described above with reference to FIG. 2. Each actualmeasurement performance value field 52D stores the aforementioned actualmeasurement performance values obtained for the correspondingprioritized work or non-prioritized work group.

Accordingly, FIG. 3 shows that the targeted performance of theprioritized work “WORK 1,” for example, was “10000,” while the actualmeasurement performance value was “8000.”

The work-specific actual measurement value table 53 is a table used tomanage the actual measurement performance values for multiplemeasurement times for each piece of prioritized work and thenon-prioritized work group, and as shown in FIG. 4, has target fields53A, targeted performance fields 53B, first and second processingpercentage fields 53C and 53E, and first and second actual measurementperformance value fields 53D and 53F.

The target fields 53A, the targeted performance fields 53B and theprocessing percentage fields 53C store the same information as stored inthe target fields 50A, the targeted performance fields 50B, and theprocessing percentage fields 50C of the targeted performance settingtable 50 described above with reference to FIG. 2.

Each first actual measurement performance value field 53D stores theactual measurement value for the corresponding prioritized work ornon-prioritized work group obtained in the second measurement from thelast, and each second processing percentage field 53E stores theprocessing percentage of the corresponding prioritized work ornon-prioritized work group calculated based on the corresponding actualmeasurement performance value.

Each second actual measurement performance value field 53F stores theaforementioned actual measurement performance value of the correspondingprioritized work or non-prioritized work group obtained when theprocessing percentage for the corresponding prioritized work ornon-prioritized work group is set in the second processing percentagefield 53E (i.e., the actual measurement performance value obtained inthe last measurement).

Accordingly, FIG. 4 shows that for the prioritized work “WORK 1” withthe targeted performance “10000,” the actual measurement performancevalue when the processing percentage was “50”% was “8000,” while whenthe performance percentage changed to “63”%, the actual measurementperformance value also changed to “9800.”

(2-2) Data Input/Output Prioritizing Processing

Next, data input/output prioritizing processing in the storage system 1according to this embodiment will be described. FIG. 5 is a flowchartshowing the flow of processing relating to the data input/output controlfunction in the storage system 1.

In this storage system 1, as part of the data input/output controlfunction, the service processors 24 first obtain the performance limitof the storage apparatus 4 at the system test stage if the storagesystem 1 is pre-operation, and during operation if it is in operation(SP1). The performance limit thus obtained is stored in the lowermostrow in the aforementioned targeted performance setting table 50 (FIG. 2)held in the memory 25 in the service processors 24.

Subsequently, the user designates a desired one or more pieces ofprioritized work via the service processors 24, and sets the targetedperformances for the prioritized work with reference to the performancelimit obtained at step SP1 (SP2).

The CPUs 26 in the service processors 24 provide a unique ID to each ofthe pieces of designated prioritized work, and stores these IDs andtargeted performances set for the prioritized work corresponding tothese IDs in the corresponding target fields 50A and the correspondingtargeted performance fields 50B of their respective targeted performancesetting tables 50, respectively. The CPUs 26 send the IDs for theprioritized work, the targeted performances set for the prioritized workcorresponding to the IDs, and the performance limit of the storageapparatus 4 obtained at step SP1 to the operation information monitoringunit 7 and the load control unit 8.

The CPU 40 in the operation information monitoring unit 7 stores the IDsfor the prioritized work, and the targeted performances of theprioritized work in the corresponding target fields 52A and thecorresponding targeted performance value fields 52B of the actualmeasurement performance value table 52, and also in the correspondingtarget fields 53A and the corresponding targeted performance fields 53Bof the work-specific actual measurement performance value table 53.

The CPU 42 in the load control unit 8 creates a targeted performancesetting table 50 with the same content as that of the targetedperformance setting table 50 held in the memory 25 in the serviceprocessors 24, based on that information sent from the serviceprocessors 24, and stores it in the memory 43.

The CPU 42 in the load control unit 8 then calculates and determines theprocessing percentage for each of the prioritized work and thenon-prioritized work group based on the targeted performance of eachprioritized work and the performance limit of the storage apparatus 4,which are registered in the targeted performance setting table 50 storedin the memory 43 as described above (SP3).

More specifically, the CPU 42, as shown in FIG. 4, when the prioritizedwork is “WORK 1,” “WORK 2,” and “WORK 3,” their targeted performancesare “10000,” “5000”, and “2000,” respectively, and the performance limitof the storage apparatus 4 is “20000” I/Os per second calculates anddetermines the processing percentage for “WORK 1” as indicated in thefollowing calculation:

(Calculation/Formula 1)

10000/20000×100=50[%]  (1); and

also calculates the processing percentage for “WORK 2” as indicated inthe following calculation:

(Calculation/Formula 2)

5000/20000×100=25 [%]  (2).

The CPU 42 calculates and determines the processing percentage for “WORK3” as indicated in the following calculation:

(Calculation/Formula 3)

2000/20000×100=10 [%]  (3); and

also calculates and determines the processing percentage for thenon-prioritized work group (“OTHERS” in FIG. 4) as indicated in thefollowing calculation, using the processing percentages calculated for“WORK 1” to “WORK 3”:

(Calculation 4)

100−(50+25+10)=15 [%]  (4)

The CPU 42, upon determining the processing percentages for theprioritized work and the non-prioritized work group as described above,stores the processing percentages in the processing percentage fields50C of the targeted performance setting table 50, and also reports themto the operation information monitoring unit 7 (SP4).

The CPU 40 in the operation information monitoring unit 7, upon receiptof that report, stores the processing percentages for the prioritizedwork and non-prioritized work group in the processing percentage fields52C of the actual measurement performance value table 52, and also inthe first processing percentage fields 53C of the work-specific actualmeasurement performance value table 53, and also reports the processingpercentages to the service processors 24 (SP4).

Each service processor 24, upon receipt of that report, stores theprocessing percentages for the prioritized work and the non-prioritizedwork group in the targeted performance fields 50B of its targetedperformance setting table 50, and reports the processing percentages tothe channel processors 21 under its control (SP4).

Each channel processor 21, upon receipt of that report, internally setsthe processing percentages for the prioritized work and thenon-prioritized work group as the designated processing percentages.Each channel processor 24 then executes, in response to datainput/output request commands sent from the path control unit 13 in thehost apparatus 2, data input/output processing for the prioritized workand the non-prioritized work group in a particular order, for example,the order shown in the “I/O PROCESSING ORDER” field 51C in FIG. 6 sothat the internally-set processing percentages are met (SP5).

In that case, each channel processor 21 measures the total number ofdata input/output processes for the prioritized work and thenon-prioritized work group for which the channel processor 21 hasprocessed data input/output request commands, and the number of datainput/output processes for each of the prioritized work and thenon-prioritized work group by individually counting the number usingcounters (not shown).

The channel processors 21 halt data input/output processing for theprioritized work and the non-prioritized work group when they haveperformed data input/output processing the number of times previouslyset for each of the prioritized work and the non-prioritized work groupbased on their processing percentages; i.e., in the FIG. 6 example, 50I/Os for “WORK 1” is 25 I/Os for “WORK 2,” 10 I/Os for “WORK 3,” and 15I/Os for “OTHERS.” The channel processors 21 then clear the count valuefor each counter (i.e., change them back to “0”) when the total numberof data input/output processes for the prioritized work and thenon-prioritized work group reaches the total value of the number ofprocesses set for each of the prioritized work and the non-prioritizedwork group (e.g., “100 I/Os”). As described above, the channelprocessors 21 execute data input/output processing for each of theprioritized work and the non-prioritized work group at the frequenciescorresponding to the internally-set processing percentages.

At that time, the channel processors 21, if they have received no datainput/output request commands for any prioritized work or thenon-prioritized work group, allocate the data input/output processingcapacity for that prioritized work or non-prioritized work group toother prioritized work or non-prioritized work group. However, there isa problem in that if it continues to receive no data input/outputrequest commands for that prioritized work or non-prioritized work groupat all, subsequent data input/output processing will not be performedwhen the number of data input/output processes for the other prioritizedwork and the non-prioritized work reaches the previously-set numbers.Therefore, in this embodiment, the channel processors 21 clear eachcounter's count value based on the performance limit. More specifically,when the performance limit is “20000,” the time required for performingthe data input/output processing 100 times is 5 [ms], as indicated inthe following calculation:

(Calculation 5)

100/20000×100=0.005 [s]=5 [ms]  (5), and

therefore, the channel processors 21 clear the count value of eachcounter every period of 5 [ms].

For enabling the channel processors 21 to perform the above processing,the path control unit 13 in the host apparatus 2 issues datainput/output request commands with IDs, which differ depending on thework, added so that the channel processors 21 can recognize which pieceof work each data input/output command is directed to.

On the other hand, the channel processors 21, during the execution ofthe above data input/output processes, obtain the actual measurementperformance values for the prioritized work and the non-prioritized workgroup using an existing technique every predetermined period of time(e.g., every period of one second) (SP6). Then the channel processors 21report the obtained actual measurement performance values for theprioritized work and the non-prioritized work group to the operationinformation control unit 7 via the service processors 24 (SP7).

The CPU 40 in the operation information control unit 7, upon receipt ofthis report, stores and manages the actual measurement performancevalues for the prioritized work and the non-prioritized work group inthe corresponding actual measurement performance value fields 52D of theactual measurement performance value table 52, and the correspondingfirst or second actual measurement performance value fields 53D or 53Fof the work-specific actual measurement performance value table 53(SP8).

After that, in the storage system 1, the processing after thedetermination of the processing percentages (SP3) will be repeated everycertain period of time (hereinafter referred to as the “processingpercentage determination period” (SP3 to SP8).

Considering that processing percentage determination period as being afixed period of time, the processing percentage for the prioritized workand the non-prioritized work group in the next processing percentagedetermination period is determined based on average actual measurementperformance values for that fixed period of time. However, if there isno need to frequently change the processing percentages for theprioritized work and the non-prioritized work group, like when theperformances are steady, the processing percentage determination periodmay be changed, using a predetermined period of time (e.g., on a10-minute basis) via the service processors 24.

As described above, data input/output processes in the channelprocessors 21 are performed based on the performance percentagesdetermined at step SP3. However, in reality, components other than thechannel processors 21 also affect the determination of the datainput/output processing percentages for the prioritized work and thenon-prioritized work group. Thus, even when the above data input/outputprocesses are performed based on those processing percentages, someactual measurement performance value may not reach or may exceed thetargeted value. An example of a case where the channel processor 21performance is equal to or less than the targeted performance is when alot of time is consumed for data input/output processing and the nextprocessing percentage determination period has come before the number ofdata input/output processes in the entire storage system 1 reaches thepredetermined number of times (e.g., 100 times). An example of a casewhere the channel processor 21 performance is equal to or greater thanthe targeted performance is when the total number of data input/outputprocesses in the entire storage system 1 has reached the predeterminednumber of processes before the next processing percentage determinationperiod.

Therefore, in this embodiment, the load control unit 8 determines theprocessing percentage for the prioritized work and the non-prioritizedwork group for the next processing percentage determination period sothat the relationship indicated by the following formula is met, basedon the processing percentages for the prioritized work and thenon-prioritized work group determined in the immediately previousprocessing percentage determination period, the then-obtained actualmeasurement value for each piece of prioritized work and thenon-prioritized work group, and the targeted performances set for theprioritized work and the non-prioritized work group:

(Calculation/Formula 6)

target performance:next processing percentage=actual measurementperformance value:previous processing percentage  (6)

Taking the actual measurement performance table 52 in FIG. 3 as anexample, where for “WORK 1,” the targeted performance is “10000” and theprocessing percentage is “50”%, the then-obtained actual measurementperformance value was “8000” and accordingly, the processing percentagea of “WORK 1” in the next processing percentage determination period canbe obtained by the following calculation:

(Calculation 7)

a=10000×50/8000=63 [%]  (7)

In the same way, the processing percentage for the next processingpercentage determination period can be calculated as “25”% for “WORK 2,”“7”% for “WORK 3,” and “5”% for the non-prioritized work group.

The processing percentage of the non-prioritized work group is whatremains after the processing percentages for the prioritized work havebeen determined. Accordingly, if the total processing percentage for theprioritized work reaches “100,” the processing percentage for thenon-prioritized work group will be “0” or a negative figure value, anddata input/output processing will not be performed for thenon-prioritized work group. Also, if the processing percentage of anyone piece of prioritized work is determined as “100”, data input/outputprocessing will not be performed for the non-prioritized work group.

Taking the FIG. 8 example where for “WORK 1,” the targeted performanceis “10000,” the processing percentage is “50”%, and the actualmeasurement performance value is “5000,” the processing percentage inthe next processing performance determination period can be calculatedin the following calculation:

(Calculation 8)

10000×50/5000=100 [%]  (8)

In the same way, the processing percentage for “WORK 2” for the nextprocessing performance determination period can be calculated in thefollowing calculation:

(Calculation 9)

5000×25/5000=25 [%]  (9);

the processing percentage for “WORK 3” for the next processingperformance determination period can be calculated in the followingcalculation:

(Calculation 10)

2000×10/5000=4 [%]  (10); and

the processing percentage for the non-prioritized work group for thenext processing performance determination period can be calculated inthe following calculation:

(Calculation)

100−(100+25+4)=−29 [%]  (11).

When the processing percentage for the non-prioritized work group is anegative value as above, a failure occurs, in which the processing forthe non-prioritized work group will not be executed. Therefore, in thisembodiment, the lower limit value for each piece of prioritized work andthe non-prioritized work group is set to “1” and a processing capacityof “1” percent can be reserved for each piece of prioritized work andthe non-prioritized work group. The load control unit 8, when theprocessing percentage of any prioritized work or the non-prioritizedwork group is “0” or a negative value, determines the processingpercentages from the ratio of the processing percentages of theprioritized work and the non-prioritized work group.

In the FIG. 8 example, the processing percentage for “WORK 1” will becalculated and determined in the following calculation:

(Calculation 12)

100/(100+25+4+1)×100=77 [%]  (12)

The processing percentage for “WORK 2” will be calculated and determinedin the following calculation:

(Calculation 13)

25/(100+25+4+1)×100=19[%]  (13)

The processing percentage for “WORK 3” will be calculated and determinedin the following calculation:

(Calculation 14)

4/(100+25+4+1)×100=3 [%]  (14)

The processing percentage for the non-prioritized work group will becalculated and determined in the following calculation:

(Calculation 15)

100−(77+19+3)=1 [%]  (15)

Consequently, the sum of the processing percentages for the prioritizedwork and the non-prioritized work group will be “100,” and none of theprocessing percentages will be “0” or a negative value.

Next, the processing performed by the channel processors 21, which hasbeen described in relation to step SP 5 in FIG. 5 will be explained withreference to FIG. 7. FIG. 7 is a flowchart showing a series of steps ofthe processing performed by a channel processor 21 that has received adata input/output request command from the host apparatus 2.

The channel processor 21, starting the above-described processingpercentage-based data input/output processing, first confirms whether ornot it has received a report of the processing percentages for theprioritized work and the non-prioritized work group calculated by theload control unit 8 (SP10).

If it has received the processing percentage report (SP10: YES), thechannel processor 21 makes the settings according to the content of thereceived report (SP11). Meanwhile, if the channel processor 21 has notreceived the processing percentage report (SP10: NO), or if theprocessing percentages have been set, it proceeds to step SP12, andwaits for an instruction command from the host apparatus 2.

Then, upon receipt of a command or command queue from the host apparatus2 (SP12), the channel processor 2, if the commands are provided withrespective IDs, judges which work the command is directed to based onthe ID. The channel processor 21 also confirms whether the percentage ofthe number of processes for that work is equal to or less than thetargeted processing percentage of the entire storage system 1 (SP13).

If the processing of the command does not exceed the targeted processingpercentage (SP13: YES), the channel processor 21 executes the commandprocessing (SP14). Meanwhile, if the processing of the command exceedsthe targeted processing percentage (SP13: NO), the channel processor 21performs command queuing, which queues commands, without processing thecommands (SP21).

The channel processor 21, after the execution of the command processing,increments the number of I/Os for that work (SP15), and confirms thenumber of processes for that work, and the number of processes for theentire storage system 1 (SP16). The channel processor 21, uponconfirmation of the number of processes (SP16), or upon termination ofthe command queuing (SP21), confirms whether the processing percentageof the entire storage system 1 is 100 or whether the counter clearingperiod elapsed (SP17).

If the processing percentage of the entire storage system 1 is 100, orthe counter clearing period has elapsed (SP17: YES), the channel adapter21 resets the number of processes for the entire storage system 1 or thecounter clearing period (SP18), waits for one second to pass (SP19:YES), reports the total number of I/Os in the storage system 1 to theservice processors 24 (SP20), and terminates the processing. If thechannel adapter 21 continues to process commands, it returns to stepSP10, and repeats the similar steps, sequentially switching the steps tothose for the relevant processing (steps SP10 to SP20). If the channeladapter does not wait for one second to pass (SP19: NO), returns to stepSP10 without reporting the total number of I/Os to the serviceprocessors 24 and repeats the similar steps, sequentially switching thesteps to those for the relevant processing (steps SP10 to SP20).

Next, the method for determining the processing percentage for thescenario in which the CPU 42 returns to step SP3 after the terminationof step SP8 in the flowchart shown in FIG. 5 will be explained.

FIG. 9 is a flowchart showing a series of steps for determining thesecond processing percentage after termination of the first processing.The CPU 42 in the load control unit 8 calculates the second processingpercentages for the prioritized work (SP30). The CPU 42 also calculatesthe second processing percentage for the non-prioritized work group(SP31). The CPU 42 confirms whether or not the processing percentage ofthe non-prioritized work group is equal to or less than “0” (SP32). Ifit is equal to or less than “0” (SP32: YES), the CPU 42 changes theprocessing percentage to “1” (SP33), and adjusts the processingpercentages of the prioritized work (SP34). Then the CPU 42 calculatesthe processing percentage of the non-priority-designated group onceagain (SP35). The CPU 42, upon the determination of the processingpercentages for all the work, reports those processing percentages tothe channel processors 21A, 21B, 21C, and 21D, and other relevantcomponents (SP36), and terminates the processing.

(2-3) Effect of the Embodiment

This embodiment makes it possible to perform data input/outputprocessing for each piece of prioritized work at a frequencycorresponding to a targeted performance desired by the user. Also, itmakes it possible to control the data input/output processingfrequencies for the prioritized work more accurately to bring them closeto the targeted performances, by changing the processing percentagesbased on the actual measurement performance values of the prioritizedwork and the non-prioritized work group obtained in the previousprocessing percentage determining period.

(3) Other Embodiments

The above-described embodiment relates to the case where the storageapparatus 4 has a plurality of control units 20. However, the presentinvention is not limited to that case, and as shown in FIG. 11, it mayhave a single control unit 20.

The above-described embodiment relates to the case where the storageapparatus is connected to one host apparatus 2. However, the presentinvention is not limited to that case, and as shown in FIG. 12, it maybe connected to a plurality of host apparatuses 2.

The above-described embodiment includes no specific descriptions, but ifthe use frequency for work changes depending on the period of time, andthe user wishes to change the processing percentage for the workdepending on the period of time, the targeted performance for eachperiod of time may be set in advance and the CPU 42 in the load controlunit 8 may re-set the targeted performance according to the set targetedperformance every period of time, making continuous operation possibleonly with a series of settings being made at the start of operation ofthe storage system 1. Like the FIG. 10 example where the targetedperformance value from 6:00 to 7:00 is “10000,” that from 7:00 to 8:00is “5000,” that from 8:00 to 9:00 is “2000” for prioritized work withthe ID “WORK 1,” the targeted performance value may be changed dependingon the period of time.

The above-described embodiment relates to the case where the targets,which correspond to data input/output processing request types that aresubject to the data input/output prioritizing processing control, areclassified according to the individual work (applications) that issuedthe data input/output requests. However, the present invention is notlimited to that case, and as shown in FIG. 13, the targets may beclassified according to devices (LDEVs) in which data is written/readto/from. Also, the targets may be classified according to the units ofdata processing, the programs that process data, the areas that storedata, or others.

The present invention can be applied to a broad range of storage systemswith various kinds of configurations.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of thisdisclosure, will appreciate that other embodiments can be devised whichdo not depart from the scope of the invention as disclosed herein.Accordingly, the scope of the invention should be limited only by theattached claims.

1. A storage system including a storage apparatus that performs datainput/output processing according to a data input/output requestreceived from a host apparatus, the storage system comprising: aperformance limit detection unit that detects a performance limit, whichis the number of data input/output processes per unit of time that isthe limit in the storage apparatus; and a processing percentagedetermination unit that determines a processing percentage for datainput/output processes for each of one or more priority targets forwhich data input/output processing should be prioritized, and a group ofone or more non-priority targets that consists of one or more othertargets, from among one or more targets, which correspond toinput/output processing request types, the processing percentage beingdetermined based on the performance limit detected by the performancelimit detection unit, and a targeted performance that is a targetednumber of data input/output processes per unit of time set in advancefor each of the one or more priority targets, wherein the storageapparatus executes data input/output processing for the one or morepriority targets and the group of one or more non-priority targets atrespective frequencies corresponding to the processing percentagesdetermined by the processing percentage determination unit.
 2. Thestorage system according to claim 1, wherein the one or more targetscorrespond to one or more applications that issued the input/outputprocessing requests, or devices in which data is written/read to/from.3. The storage system according to claim 1, further comprising: ameasurement unit that measures the number of data input/output processesper unit of time for each of the one or more priority targets and thegroup of one or more non-priority targets, wherein the processingpercentage determination unit periodically determines a new processingpercentage for each of the one or more priority targets and the group ofone or more non-priority targets, based on an actual measurementperformance value, measured by the measurement unit, of the number ofdata input/output processes per unit of time for each of the one or morepriority targets and the group of one or more non-priority targets, theperformance limit detected by the performance limit detection unit, andthe targeted performance for each of the one or more priority targets.4. The storage system according to claim 3, wherein the processingpercentage determination unit, if the actual measurement performancevalue of any of the one or more priority targets or the group of one ormore non-priority targets is equal to or less than a lower limitdetermined in advance, determines a new processing percentage for eachof the one or more priority targets and the group of one or morenon-priority targets, based on the performance limit detected by theperformance limit detection unit, and the targeted performance for eachof the one or more priority targets.
 5. The storage system according toclaim 1, wherein the processing percentage determination unit changesthe processing percentage for each of the one or more priority targetsand the group of one or more non-priority targets to a processingpercentage determined in advance for the relevant period of time, withregard to each relevant period of time.
 6. A data input/output controlmethod for controlling data input/output to/from a storage apparatusthat performs data input/output processing according to a datainput/output request received from a host apparatus, the methodcomprising: a first step of detecting a performance limit, which is thenumber of data input/output processes per unit of time that is the limitin the storage apparatus; and a second step of determining a processingpercentage for each of one or more priority targets for which datainput/output processing should be prioritized, and a group of one ormore non-priority targets that consists of one or more other targets,from among one or more targets, which correspond to input/outputprocessing request types, the processing percentage being determinedbased on the performance limit detected by the performance limitdetection unit, and a targeted performance that is a targeted number ofdata input/output processes per unit of time set in advance for each ofthe one or more priority targets; and a third step of the storageapparatus executing data input/output processing for the one or morepriority targets and the group of one or more non-priority targets atrespective frequencies corresponding to the processing percentagesdetermined by the processing percentage determination unit.
 7. The datainput/output control method according to claim 6, wherein the one ormore targets correspond to one or more applications that issued theinput/output processing requests, or devices in which data iswritten/read to/from.
 8. The data input/output control method accordingto claim 6, wherein: the third step includes measuring the number ofdata input/output processes per unit of time for each of the one or morepriority targets and the group of one or more non-priority targets; andthe method further comprises a fourth step of periodically determining anew processing percentage for each of the one or more priority targetsand the group of one or more non-priority targets, based on an actualmeasurement performance value, measured by the measurement unit, of thenumber of the data input/output processes per unit of time for each ofthe one or more priority targets and the group of one or morenon-priority targets, the performance limit detected by the performancelimit detection unit, and the targeted performance for each of the oneor more priority targets.
 9. The data input/output control methodaccording to claim 8, wherein the fourth step includes, if the actualmeasurement performance value of any of the one or more priority targetsor the group of one or more non-priority targets is equal to or lessthan a lower limit determined in advance, determining a new processingpercentage for each of the one or more priority targets and the group ofone or more non-priority targets, based on the performance limitdetected by the performance limit detection unit, and the targetedperformance for each of the one or more priority targets.
 10. The datainput/output control method according to claim 6, wherein the secondstep includes changing the processing percentage for each of the one ormore priority targets and the group of one or more non-priority targetsto a processing percentage determined in advance for the relevant periodof time, with regard to each relevant period of time.